package com.tac.controller.mes;

import com.github.pagehelper.PageInfo;
import com.tac.common.result.Result;
import com.tac.pojo.mes.Bom;
import com.tac.pojo.mes.BomMaterial;
import com.tac.service.mes.BomService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RequestMapping("/bom")
@RestController
@CrossOrigin
@Api(tags = "制造执行MES--Bom接口")
public class BomController {
    /**
     * 在MES系统中，BOM管理是指将产品的BOM信息与生产工艺过程相结合，实现对生产过程的监控和控制。BOM信息可以帮助生产人员了解产品的组成和生产工艺，从而能够更好地进行生产计划、物料配送、工序控制等工作。
     *
     * 在实际应用中，BOM管理可能同时涉及到ERP、APS和MES等多个系统，具体实现方式会因企业的规模、生产流程等因素而有所不同。
     */
    @Autowired
    private BomService bomService;

    @ApiOperation("Bom查询")
    @GetMapping("/getList")
    public Result<PageInfo<Bom>> getList(@RequestParam(defaultValue = "1",required = false) Integer pageNum, @RequestParam(defaultValue = "10",required = false)Integer pageSize, String bomName){
        return bomService.getList(pageNum,pageSize,bomName);
    }
    @ApiOperation("Bom添加")
    @PostMapping("/save")
    public Result save(@RequestBody Bom bom){
        return bomService.save(bom);
    }
    @ApiOperation("Bom修改")
    @PutMapping("/update")
    public Result update(@RequestBody Bom bom){
        return bomService.update(bom);
    }
    @ApiOperation("Bom删除")
    @DeleteMapping("/remove")
    public Result remove(@RequestBody List<Integer> ids){
        return bomService.remove(ids);
    }

    @ApiOperation("Bom单明细添加")
    @PostMapping("/save2")
    public Result save2(@RequestBody  BomMaterial bomMaterial){
        return bomService.save2(bomMaterial);
    }
    @ApiOperation("Bom单明细修改")
    @PutMapping("/update2")
    public Result update2(@RequestBody  BomMaterial bomMaterial){
        return bomService.update2(bomMaterial);
    }
    @ApiOperation("Bom单明细删除")
    @DeleteMapping("/remove2")
    public Result remove2(@RequestBody  List<Integer> ids){
        return bomService.remove2(ids);
    }
}
